home *** CD-ROM | disk | FTP | other *** search
/ Tiger Disk 13 / Tiger_Disk_013_19xx_Tiger-Crew-Disk_de_Side_B.d64 / lektion 12 (.txt) < prev    next >
Commodore BASIC  |  2023-02-26  |  6KB  |  173 lines

  1. 1 rem*********************************
  2. 2 rem*---------lektion-12------------*
  3. 3 rem*-------------------------------*
  4. 4 rem*----(w)-by-arno-freisinger-----*
  5. 5 rem*-------------------------------*
  6. 6 rem*--------teachmaster------------*
  7. 7 rem*-------------------------------*
  8. 8 rem*********************************
  9. 10 poke53280 , 11: poke53281, 11 : print "[155]" : poke 2050 , 1
  10. 15 sys 42291 : poke 46 , peek (35) : poke 45 , peek (781) + 2 : clr
  11. 20 print"[147]"tab(15)"teachmaster"
  12. 30 print""tab(09)"(w) by arno freisinger"
  13. 40 print""tab(10)"                    "
  14. 50 for i = 1 to 2000 : next
  15. 60 print"[147]"tab(15)"lektion 12"
  16. 70 for i = 1 to 1000 : next
  17. 80 get a$ : get a$ : get a$
  18. 85 rem*********************************
  19. 90 rem*-------- seite 1 --------------*
  20. 95 rem*********************************
  21. 100 print"[147]im letzten kurs haben sie sogar das"
  22. 110 print"rechnen mit den betriebssystemroutinen"
  23. 120 print"gelernt. dieses koennen ist nicht "
  24. 130 print"vielen maschinenspracheprogrammierern"
  25. 140 print"beschehrt! dies ist die letzte lektion"
  26. 150 print"in diesem kurs und wir wollen hier"
  27. 160 print"themen behandeln, die wir bis jetzt"
  28. 170 print"vernachlaessigt haben. da waere das"
  29. 180 print"indirekte adressieren, diese art hatten"
  30. 190 print"wir schon kennengelernt. sie dient zum"
  31. 200 print""tab(14)"taste druecken"
  32. 210 print""tab(18)"-1-"
  33. 220 gosub 250
  34. 230 on a goto 300 , 60
  35. 245 rem********************************
  36. 246 rem*--------- tasten abfrage -----*
  37. 247 rem********************************
  38. 250 get  a$ : if a$ = "" then 250
  39. 260 if a$ = "z" then a = 2 : goto 280
  40. 270 a = 1
  41. 280 return
  42. 285 rem********************************
  43. 290 rem*--------- seite 2 ------------*
  44. 295 rem********************************
  45. 300 print"[147]anspringen von adressen, die in zwei"
  46. 310 print"aufeinander folgenden bytes liegen."
  47. 320 print"diese kann man noch mit dem x-und y-"
  48. 330 print"register kombinieren. der lda-befehl"
  49. 340 print"sieht so damit aus : lda (adresse,x)"
  50. 350 print"diese kombination laed die adresse,"
  51. 360 print"die sich aus der adressennummer plus "
  52. 370 print"dem x-register ergibt. die naechst"
  53. 380 print"moegliche kombination, die moeglich"
  54. 390 print"ist,sieht so aus : lda (adresse),y ."
  55. 410 print""tab(14)"taste druecken"
  56. 420 print""tab(18)"-2-"
  57. 430 gosub 250
  58. 440 on a goto 450 , 100
  59. 450 rem********************************
  60. 460 rem*--------- seite 3 ------------*
  61. 470 rem********************************
  62. 480 print"[147]sie liest die adresse, die in der "
  63. 490 print"klammer angegeben ist plus dem y-reg."
  64. 500 print"noch ein wort zum ersten befehl, dort"
  65. 510 print"wird nicht wie hier indirekte adresse"
  66. 520 print"plus dem y-register geladen, sondern"
  67. 540 print"die adresse des anzuspringenden pro-"
  68. 550 print"gramms. es wird das x-register zur"
  69. 560 print"angegebenen adresse hinzu addiert."
  70. 570 print"dies waere nun auch geklaert. jetzt"
  71. 580 print""tab(14)"taste druecken"
  72. 590 print""tab(18)"-3-"
  73. 600 gosub 250
  74. 610 on a goto 620 , 300
  75. 620 rem********************************
  76. 630 rem*--------- seite 4 ------------*
  77. 640 rem********************************
  78. 650 print"[147]wollen wir noch einmal auf ein flag"
  79. 660 print"zu sprechen kommen. ich meine das "
  80. 670 print"v-flag, seine bedeutung ist, so glaube"
  81. 680 print"ich, nicht verstaendlich genug zum"
  82. 690 print"ausdruck gekommen. wie sie sich erinnern"
  83. 700 print"wird das 7.bit als vorzeichen bit ge-"
  84. 710 print"waertet, es stehen also nur noch die"
  85. 720 print"bits 0-6 fuer eine zahl zur verfuegung."
  86. 730 print"wenn sie mit vorzeichen rechnen wollen"
  87. 740 print"(adc) und es ergibt sich ein wert,"
  88. 750 print""tab(14)"taste druecken"
  89. 760 print""tab(18)"-4-"
  90. 770 gosub 250
  91. 780 on a goto 800 , 450
  92. 800 rem********************************
  93. 810 rem*--------- seite 5 ------------*
  94. 820 rem********************************
  95. 830 print"[147]wo das 7.bit gesetzt wird, dann wird"
  96. 840 print"das v-flag gesetzt. wenn sie "
  97. 850 print"programmieren,koennen sie dieses flag"
  98. 860 print"vergessen, sei denn,sie wollen rechnen"
  99. 870 print"oder sie wollen das 7.bit abfragen, "
  100. 880 print"dann koennen sie dies gut mit den "
  101. 890 print"flag - befehlen machen. so,das letzte,"
  102. 900 print"was wir machen wollen ist die werte-"
  103. 910 print"uebergabe von basic-programmen."
  104. 963 print""tab(14)"taste druecken"
  105. 966 print""tab(18)"-5-"
  106. 970 gosub 250
  107. 980 on a goto 1000 , 620
  108. 1000 rem*******************************
  109. 1010 rem*--------- seite 6 -----------*
  110. 1020 rem*******************************
  111. 1030 print"[147]die erste routine, die wir dazu kennen-"
  112. 1040 print"lernen wollen dient zum testen, ob"
  113. 1060 print"ein komma vorhanden ist. wenn nicht"
  114. 1070 print"dann erscheint die fehlermeldung"
  115. 1080 print"syntax error . die ansprungadresse"
  116. 1090 print"ist $aefd. die naechste routine liest"
  117. 1100 print"das naechste byte aus dem basic,"
  118. 1110 print"sie startet in der adresse $73."
  119. 1120 print"eine aehnliche routine liegt ab $79."
  120. 1130 print"sie liest das aktuelle byte, ohne das"
  121. 1140 print""tab(14)"taste druecken"
  122. 1150 print""tab(18)"-6-"
  123. 1160 gosub 250
  124. 1170 on a goto 1200 , 810
  125. 1200 rem*******************************
  126. 1210 rem*--------- seite 7 -----------*
  127. 1220 rem*******************************
  128. 1230 print"[147]der zeiger (indirekter-zeiger) erhoeht"
  129. 1240 print"wird. das byte befindet sich an-"
  130. 1250 print"schliessend im akku (dies gilt fuer"
  131. 1260 print"beide routinen!). mit diesen routinen"
  132. 1270 print"koennen sie aber keine zahlen auslesen,"
  133. 1280 print"da diese im ascii-code abgelegt werden!"
  134. 1290 print"hierfuer bedienen wir uns einer anderen"
  135. 1300 print"routine, sie startet ab $b7eb."
  136. 1310 print"sie liesst zahlen von 0-65535, ist die"
  137. 1320 print"zahl kleiner oder groesser,dann er-"
  138. 1340 print""tab(14)"taste druecken"
  139. 1350 print""tab(18)"-7-"
  140. 1360 gosub 250
  141. 1370 on a goto 1400 , 1000
  142. 1400 rem*******************************
  143. 1410 rem*--------- seite 8 -----------*
  144. 1420 rem*******************************
  145. 1430 print"[147]scheint die fehlermeldung:illegal qua."
  146. 1440 print"das low-byte der zahl befindet sich"
  147. 1450 print"in speicherstelle $14 und das hi-byte"
  148. 1460 print"befindet sich in $15. dies wars "
  149. 1470 print"nun aber endgueltig mit unserem"
  150. 1480 print"kurs ! ich hoffe er hat ihnen gefallen."
  151. 1490 print"in der letzten lektion "
  152. 1510 print"finden sie eine zusammenfassung dieses"
  153. 1520 print""tab(14)"taste druecken"
  154. 1530 print""tab(18)"-8-"
  155. 1540 gosub 250
  156. 1550 on a goto 1600 , 1200
  157. 1600 rem*******************************
  158. 1610 rem*-------- seite 9 ------------*
  159. 1620 rem*******************************
  160. 1630 print"[147]kurses, diese kann auch auf dem drucker"
  161. 1640 print"ausgegeben werden!"
  162. 1650 print"so,geben sie ein letztes mal ihr geraet"
  163. 1660 a$ = "" : input"ein. d[146] oder f[146]";a$
  164. 1670 if a$ = "" then end
  165. 1680 if a$ = "d" then f=1 : goto 1700
  166. 1690 if a$ = "f" then f=8 : goto 1700
  167. 1695 if a$ = "z" then goto 1400
  168. 1699 goto 1660
  169. 1700 rem*******************************
  170. 1710 rem*-------- seite 9 ------------*
  171. 1720 rem*******************************
  172. 1730 poke 2,f : poke 46,8 : poke 45,3 : poke 2050,0 : load "lektion 13",peek(2)
  173.